{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We left off with the disturbing realization that even though we are satisfied the requirements of the sampling theorem, we still have errors in our approximating formula. We can resolve this by examining the Whittaker interpolating functions which are used to reconstruct the signal  from its samples."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Populating the interactive namespace from numpy and matplotlib\n"
     ]
    }
   ],
   "source": [
    "%pylab inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Annotation at 0xa371550>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nutWxLACkpQHNmqm33xyFCE0UFqq2f/yx5AcYQOW6tEKUCQkJWJO2Bq+OfbXknQhlg5ld+oNyPrsB\n1AdQASqyGG8j0wPAb8bPbQGkO9kfe5LCQuZZs5jfeos5I6Nk2U8/ZX74YeYffmAuKnIsW1DA/PLL\nzPXrM/fvz3zqlGPZ/HwlU6UKc/XqzEuWOJa9do25Sxfme+5hbt2a+bHHHOtx7Rpzy5bMr73GPH06\nc40azMePa8vm5TE3aMC8YAHz9evM7dsrGx3pW7s2844dqvzjj0onLQoKlE1796ry1avKzgMH7GUL\nC5mjopiPHTPXPfMM83vvacuGhTFfuGCuW7dO/SZatlWooLaxJDqa+dAh67pz55gjIrRtsaWoiJlI\n/V6W/P03c3y8dd2FC0pfrWPVtCnzX3+Zy4cPM1erpi377bfMAwaYy4cOqd/T1jZm5jNnmCMjmS9d\nMusVHa0ty8x8//3M332nPq9Zw9yokb1tJj79lLlbN6Xj1KnMzZo53u+BA8xVqzLPm8f84ovMHTqo\n80KLoiLmPn2Y77yTuVMn5p49HcsyM8+dq/ZduTLzP//pWAdm5qNHmfv2Vef5a685to1ZfTdpkrrW\nv/zSuSwz886dzG++yTx/fsmy5YHxvuny/by0f+5wHO0A/G5RHg3gZRuZLwE8alHOAFDTwf7c92uW\nwOXLzPfeq242I0eqG9z06dqyBQXqhO7USV28t96qttG6uIuKmAcOVDf3nTuZR4xgvu028wVsy/Dh\nzD16qBv96tVKD0dObMwY5vvuUxfI5cvMt9zCPHmytuwHHyj7TDq+9JJyNFp8+63S18TatcwxMdoX\n7ezZ6sI2YXIkWjqvWKFst2TwYObPP7eX3bSJuXlz67qpU5kffNBeNiODuWFD67qTJ5XjsT0mubnM\ndeva76N5c3V8LDl6VDnY0hISoo6DJWvWKMdrS2SkuplbUlDAHBysHKqJoiLlOA4ftt/HkCHMX3xh\nXXfLLcwbNtjLTpnC/MAD1nUtW6pjYsuhQ+rmazpHi4qYW7RgXrbMXvbKFeaaNc0PDkVFzG3bMs+c\naS/LrK6b119Xn69fV9fQpEnasp99pq7HvDz1l5zM/Pbb2rJbt6rfaeNGdQw6dVIPa1qcO6ec2//9\nH/P27er8HTZMW7aoiDk1Vdn07bfM7doxDxrk2CF89506Z559ljkpSTmna9e0ZcsLf3QcfQF8ZVEe\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa3715f8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from __future__ import division\n",
    "\n",
    "t = linspace(-5,5,300) # redefine this here for convenience\n",
    "\n",
    "fig,ax = subplots()\n",
    "\n",
    "fs=5.0\n",
    "ax.plot(t,sinc(fs * t))\n",
    "ax.grid()\n",
    "ax.annotate('This keeps going...',\n",
    "            xy=(-4,0),\n",
    "            xytext=(-5+.1,0.5),\n",
    "            arrowprops={'facecolor':'green','shrink':0.05},fontsize=14)\n",
    "ax.annotate('... and going...',\n",
    "            xy=(4,0),\n",
    "            xytext=(3+.1,0.5),\n",
    "            arrowprops={'facecolor':'green','shrink':0.05},fontsize=14)\n",
    "\n",
    "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice in the above plot that the function extends to infinity in either direction. This basically means that the signals we can represent must also extend to infinity in either direction which then means that we have to sample forever to exactly reconstruct the signal! So, on the one hand the sampling theorem says we only need a sparse density of samples, this result says we need to sample forever. No free lunch here!\n",
    "\n",
    "This is a deep consequence of dealing with band-limited functions which, as we have just demonstrated, are **not** time-limited. Now, the new question is how to get these signals into a computer with finite memory. How can we use what we have learned about the sampling theorem with these finite-duration signals?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Approximately Time-Limited Functions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's back off a bit and settle for functions that are *approximately*  time-limited in the sense that almost all of their energy is concentrated in a finite time-window:\n",
    "\n",
    "$$ \\int_{-\\tau}^\\tau |f(t)|^2 dt = E-\\epsilon$$\n",
    "\n",
    "where $E$ is the total energy of the signal:\n",
    "\n",
    "$$ \\int_{-\\infty}^\\infty |f(t)|^2 dt = E$$\n",
    "\n",
    "Now, with this new definition, we can seek out functions that are band-limited but come very, very (i.e. within $\\epsilon$) close to being time-limited as well. In other words, we want functions $\\phi(t)$ so that they are band-limited:\n",
    "\n",
    "$$ \\phi(t) = \\int_{-W}^W \\Phi(\\nu) e^{2 \\pi j \\nu t} dt $$\n",
    "\n",
    "and coincidentally maximize the following:\n",
    "\n",
    "$$ \\int_{-\\tau}^\\tau |\\phi(t) |^2 dt$$\n",
    "\n",
    "After a complicated derivation,  this boils down to solving the following eigenvalue equation:\n",
    "\n",
    "$$ \\int_{-\\tau}^\\tau \\phi(x)\\frac{\\sin(2\\pi W(t-x))}{\\pi(t-x)} dx = \\lambda \\phi(t)$$\n",
    "\n",
    "The set of $\\phi_k(t)$ eigenfunctions form the basis for arbitrary\n",
    "approximately time-limited functions. In other words, we can express\n",
    "\n",
    "$$ f(t) = \\sum_k a_k \\phi_k(t) $$\n",
    "\n",
    "Note that\n",
    "the $\\phi_k(t)$ functions are not time-limited, but only time-concentrated in the $[-\\tau,\\tau]$ interval. With a change of variables, we can write this in normalized form as \n",
    "\n",
    "$$ \\int_{-1}^1 \\psi(x)\\frac{\\sin(2\\pi\\sigma(t-x)/4)}{\\pi(t-x)} dx = \\lambda \\psi(t)$$\n",
    "\n",
    "where we define$\\sigma = (2\\tau)(2W)$ as the time-bandwidth product.The advantage of this change of variables is that $\\tau$ and $W$ are expressed as a single term. Furthermore, this is the form of a classic problem where the $\\psi$ functions turn out to be the angular prolate spheroidal wave functions. Let's see what these $\\psi$ functions look like but solving this form of\n",
    "the eigenvalue problem"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def kernel(x,sigma=1):\n",
    "    'convenient function to compute kernel of eigenvalue problem'\n",
    "    x = np.asanyarray(x)\n",
    "    y = pi*where(x == 0,1.0e-20, x)\n",
    "    return sin(sigma/2*y)/y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now, we are ready to setup the eigenvalues and see how they change with the time-bandwidth product."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa6865c0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nstep=100                # quick and dirty integral quantization\n",
    "t = linspace(-1,1,nstep) # quantization of time\n",
    "dt = diff(t)[0]          # differential step size\n",
    "def eigv(sigma):\n",
    "    return eigvalsh(kernel(t-t[:,None],sigma)).max() # compute max eigenvalue\n",
    "\n",
    "sigma = linspace(0.01,4,15) # range of time-bandwidth products to consider\n",
    "\n",
    "fig,ax = subplots()\n",
    "ax.plot(sigma, dt*array([eigv(i) for i in sigma]),'-o')\n",
    "ax.set_xlabel('time-bandwidth product $\\sigma$',fontsize=14)\n",
    "ax.set_ylabel('max eigenvalue',fontsize=14)\n",
    "ax.axis(ymax=1.01)\n",
    "ax.grid()\n",
    "\n",
    "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The largest eigenvalue is the fraction of the energy of the contained in the  interval $[-1,1]$. Thus, this means\n",
    "that for $\\sigma \\gt 3$, $\\psi_0(t)$ is the eigenfunction that is most concentrated in that interval. Now, let's look at the this  eigenfunction under those conditions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0xb4e6860>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nnjv/mLYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa3665c0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sigma=3\n",
    "w,v=eigh(kernel(t-t[:,None],sigma))\n",
    "maxv=v[:, w.argmax()]\n",
    "fig,ax=subplots()\n",
    "ax.plot(t,maxv)\n",
    "ax.set_xlabel('time',fontsize=18)\n",
    "ax.set_ylabel('$\\psi_0(t)$',fontsize=22)\n",
    "ax.set_title('Eigenvector corresponding to e-value=%3.4f;$\\sigma$=%3.2f'%(w.max()*dt,sigma))\n",
    "\n",
    "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note that we'll see this shape again when we take up window functions.\n",
    "\n",
    "What does this all mean? By framing our problem this way, we made a connection between the quality of our reconstruction via the Whittaker interpolant and the time-bandwidth product. Up until now, we did not have a concrete way of relating limitations in time to limitations in frequency. Now that we know how to use the time-bandwidth product, let's go back to the original formulation with the separate  $\\tau$ and $W$ terms as in the following:\n",
    "\n",
    "$$ \\int_{-\\tau}^\\tau \\phi(x)\\frac{\\sin(2\\pi W (t-x))}{\\pi(t-x)} dx = \\lambda \\phi(t)$$\n",
    "\n",
    "and then re-solve the eigenvalue problem."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Miniconda64\\lib\\site-packages\\ipykernel\\__main__.py:18: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0xbae1eb8>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nsS/ycbj0Upg/P/xdlmrSJPjKV+DVV6Fz59KvV+k0gEFi5x5GzZ12WjSJCEJz3YQJYeh3Ws2fH+ZL\n7bxz0pHEb5NNwjbkaR7EMH48/PWvcMst0Vyva1e4/nr43vcqawWRNFIykqIMHBjeNf7619Fdc7PN\n4Kabwhyk6urorhul0aPDkN+msgxQbWlvqvvFL8KbmjZtorvmuedC69Zw663RXVO+SMkoYu5hFvfk\nyWGOQ9aXvanLihVwySWhTX3TTaO99gknwEYbwZNPRnvdqOSTUVOV5mQ0ahSMGBGSR5Ty/Uc33xz+\npyvNunUwa1Z4zXr//eTeCCoZRWDVqvDieeqp4R3UHnuEF9XDDw9zUfbfP/SHzJ6ddKTR6N8//GxV\nVdFf2ywMZPjFL8KQ8bRpqoMX8tKcjK6+OtSq86srRGnXXcMIu/POq4zRdQsWhKbMXr3C+ny9eoXX\nrO7dw2vWcceFPrc4tw1RMirB6tVhOPKuu4bFP484IrRZL1wIU6aEdxvLlsHtt8PixeEXff754d1H\nVo0dG/5Ib765fGV8/eshqT/ySPnKKFZTT0Z77x369dI2J+zVV0Oz8f/9X/nK6Ns3/O8++mj5yii3\nJUvgmmvCYIzx48ObvgULwqTzKVNCq86sWaEv+MknoVMn+OUvw+tY2bm7Pur4CLemfkOHunfq5N6n\nj/uoUQ0e+qmPPnK/9FL3bbd1/9vfCjsnTdavdz/kEPd77y1/WS+84N61aygzLZYvd2/Rwn3NmqQj\nSdaXv+w+blzSUXxenz7x/F2+/rr79tu7L1xY/rKiNmSIe/v27mec4T5jRmHnTJvmfvrp4Wf+5z83\nfHzudbO419xiT6z0j/qS0apV7hdd5N6unfugQfX/Uhry1lvhhfa733X/+OPirpGE++9379EjngRR\nXe3evbv7v/9d/rIK9cor7gcckHQUyfvOd9wfeijpKD4zfrx727buK1fGU95557mffXY8ZUVh3Tr3\nyy4LiWjIkOKu8dpr7rvvHn73ixfXf1wpyUjNdI3w3nthGfo5c8Lw1m98o7jrdO8eOlvNwrDo+fOj\njbMcFiwI7fH33BMmqZabWVhaqJzNgY3V1Jvo8tLWb3TrraH5e7PN4inv178OKzyMGBFPeaX45BP4\n9rfD682YMXD00cVd5+CD4e23wyjFAw8sz/B+JaMCvf56WF7+29+Gxx8PC2WWokWLMB/iyCPhkEPg\n3XcjCbNsLr88bJQX54vxySeHGfAjR8ZXZkNGjgz/iE3dgQem53fywQdhmkFj158rxZe+FN4knXtu\nOgfZ5C1eHPqxW7WCZ58N/bClaNEiLPl17bXhupGPeC22SlXpH9Rophs0KPTzDB5cf/W0FHfe6b7L\nLu7vvlue65fq5ZdDFX/ZsvjLvvVW95NPjr/cuuy+u/uYMUlHkbylS9232CIdfWdXXul+wQXxl1td\n7X7YYeF/N40WL3bff3/3vn1DrFEbNSq8Jtxxx+efp6n1GQG9gcnAVKBfPcfcAUwD3gb2bcy5XiMZ\n3X9/6LwbMaLwX1Qxbr89JKTZs8tbTmOtWePerZv7Y48lU/7Spe5bb+0+Z04y5ectXOjesmVofxf3\nPfYofOBOuaxc6b7ddqGTPQnjx4c3qR98kEz59VmyxP3AA90vvrg8iShv5kz3Ll1Cf1S+H7mUZJS5\nZjozawYMAL4O7AmcZmZdah1zDNDJ3b8MnAPcW+i5Nf3yl/Cb38D//hea6MrpootCU8PXvw6LFpW3\nrMb4/e+hffuwrH4SttoqDDO9//5kys974w044IAwIVegZ08YPjzZGB57LMzh2223ZMrfc08488ww\n/ygt1qwJXQn77w+33VbelUJ23jkMqX/tNTj99FB2KTKXjICDgGnuPsvd1wKPAifUOuYE4CEAdx8B\ntDKztgWe+6knnww3+stfLseP8UU/+xkcc0yYfLZyZTxlNmTmTLjxxjCHKsnlb849N6ycnOTaYCNG\nZGs32nLr0SP5Dvy77463r6gu11wT3qwOHZpsHBAm4/74x9CyZZj/GMf/7DbbwPPPh1VZjj++tGtl\nMRm1B2puNDAn91whxxRy7qeGDYPtty8p1ka7+eawKvT3v59s56h7SAKXXRYmviWpW7fwhuBf/0ou\nBiWjz0s6GY0aBR9+GHYXTlLLlqH14LzzSq8ZlOqaa2Dq1DBZPM4afIsW8MQTpW9Hv3E04aReUe8R\nbr21/6dfV1VVUVWO9W9qadYMHnww1JAuvrj4DetK9fe/h5FKffvGX3Zdzj8/vBM++eT4y3YPL7x/\n/GP8ZafVnnvC3LlhxNbWW8df/t13hy3u09BseuKJoRn5ttugX79kYrjvvrAyxOuvx7u9x9ChQxma\nqxbutFOJFyu2sympD6An8FyNx1dQayACoY/olBqPJwNtCzm3xvca15sXsSVL3Pfay/2mm+Ive+HC\nMGhj+PD4y67P6tUhpgkT4i976lT3HXeMv9y0O+ww9+eei7/cRYvcv/Ql93nz4i+7PtOnu7duHT7H\n7Zlnwv++wNr7AAAP3ElEQVTG1Knxl10bTWkAAzAS2M3MOprZJsCpwKBaxwwCfgBgZj2BJe4+r8Bz\nU6FVq7Cvz513xr8W1mWXhRpImpqlNtkEzjorTLqN2/Dh6boXadGjRzKDGB58EI49NtptIkrVqRNc\neWUY0BDnqtejRoWt0QcOjK9vu1wyl4zcfT1wATAEmAA86u6TzOwcMzs7d8xgYKaZTQf+AJzX0LkJ\n/BgF6dAB/v3vMNJu2LB4yhw8GF54IaycnTZnnw0PPwzLl8db7ogRYfSYfF7PnvH3G1VXhzck558f\nb7mFuOSSsIDsXXfFU96MGWHQwH33VcjfZ7FVqkr/IOFmuppeeMG9TRv3iRPLW868ee477BAWgU2r\nb34zngUxa9pnH/dXX423zCz44IPQXBbn3KshQ8Lvo5zzZ0oxZUporpsypbzlzJ8fFqwdMKC85TQW\nTayZrsk58sgwyq5PnzCooBzcQxPDD38Ihx1WnjKicO654Z2xx7SnzMKF4R2olgH6ou23Dx9vvx1f\nmffeG/4G0rrT7u67h/mJJ59cvukZH38c9hs66aR01hCLpWSUET/4Qdir5bjjytNMdcstYS+T666L\n/tpROvLIMKchruahYcPC2oHNm8dTXtYcfji89FI8Zc2dG8r67nfjKa9YP/lJ2GDzoouiv/a6dWET\nz86dw4KtlUTJKEOuuiq8Qz/uuPCCHJVnngnDUp98MgwUSLNmzcI/+733xlPeSy+FF1ypW5zJ6IEH\nwgvxllvGU16xzEI/zssvw5/+FN11160LKx2sXx+mGaS1dlgs87jaOzLGzDyN96a6Oowqmz49JJGW\nLUu73oQJYfvwQYPCMvFZsGBBGDn0zjulr56+Id26hReUci8HlVXz54fleBYuhI3LOGtx3TrYZZfw\nN7/33uUrJ0qTJoVk/cADYfRfKfKJaNEieOqp+LbLaCwzw92LSpOqGWVMs2Zhgt1uu4W9SebNK/5a\nEybA174WZpBnJREBbLttqB3+5S/lLeejj8LeVfvtV95ysmy77aBjxzDEuJyeeSZMqsxKIgLo2jWs\nGnLGGWFZsWJ9/HHoH1q0KFwvrYmoVEpGGZRPSEcfHYZ0TpjQ+GuMGQNHHQU33QTf+170MZZbvqmu\nnJXXoUPhK18p7zv+ShBHU90994Tfedb07Bn2LTvxxOLu0dy54W9w663h6afD0juVSskoo5o1g+uv\nD/OBDjsMbr+98LXs/vnPkIjuuCObiQjCoIJNNy3vi6D6iwpT7mQ0Y0aoeSWxFFQUevcOK4yfckr4\nnyvkDZR7mOy+//7wne+EpuK09+eWSn1G9Uhrn1Fdpk4Nq/WuXQu//W1ITnV1bk6eHAZBjB0b1p47\n4ID4Y43S3XeHF8F//rM81+/SJdwnbTXesMWLQxPawoXlecHs1y+80brlluivHad33gnboWy+eWiR\nqK8f8u234eqrw+7PWeuvLKXPSMmoHllKRhAGNjz0UEhGZmFfpC5dwpDk994LL9qTJoVZ4n37VkZ1\nf9my0F8xcWLpKwbXNnNmWO7mww9DLVQa1qNH+Ns74ohor7t6Ney4Y9g3J+vL3UBIqvffH+5V69ah\nz3bXXcP33nknrH7y4Ydw6aVwwQXZqw0pGZVB1pJRnjuMHBn6O2bMCMva77BDaNY66qjQtFVJzjkn\nvFhdfXW01x0wAN58M6yDJht2/fWwZAncemu0133kEfjzn8OeOZVk/fqwD9LLL8Ps2eEN5E47hf6h\nr3wlHauRF0PJqAyymoyamrFjw3YbM2dG+y7ymGPCJOOkdrjNmrfeCk1QU6ZEd033MADgyivDAABJ\nPw3tliZr773DENrHHovumitWwCuvhNGKUpju3cN9mzo1umu+/nroh/rGN6K7pqSXkpFkXt++8Lvf\nRTfM+5ln4NBDwzYeUhizUHt54onornnrraGPM6tNVtI4SkaSeb17w6pVoZ8sCv/8Z3aHESfp5JOj\nG9k4Y0b4fZ5xRjTXk/RTn1E91GeULffdF5Y0+ve/S7vOihXQvn3ogyr3UkOVZv36cO9eeSWsEFKK\nSy4JKw3ccEM0sUk81GckTd7pp4dO9NGjS7vOwIGhiU6JqPE22ihM0Pzb30q7zocfhlULLrwwmrgk\nG5SMpCK0aAFXXAHXXlvadf70pzCKTopz5plhKHYpW2/feGN4c9G+fXRxSfqpma4eaqbLnlWrQvPQ\nwIHFbYb3zjthwdg5c7I32TBN9tsvJJRiRiO+/35YKX3ixLBxn2SLmulECH0MP/958bWjAQNCh7kS\nUWnOPhvuvLO4c3/721C7UiJqelQzqodqRtm0enXYBfPBB8M+TYVasiQsyzJ2LHToUK7omoZPPoGd\ndw6rC3TuXPh506eHSa4TJ0KbNmULT8pINSORnE03DXOOLrwwbEhWqAEDoE8fJaIobL45nHtuaKpr\njEsuCYuiKhE1TaoZ1UM1o+xyDwvFHnFEGNSwIfPnh1Uchg8vfUiyBEuWwO67w4svhj6gDXnssdC8\nOmaMmkmzTGvTlYGSUbbNmhW2yHj+edh334aPPfvsUKMqtp9D6nbbbWE1i+efr3tLk7z33w/LCT39\ndLa2S5AvUjOdSC0dO4bk8q1vwYIF9R83eDAMGRI2KZRoXXghLF8Od91V/zGrVsE3vwkXX6xE1NSp\nZlQP1Ywqw9VXh4Tzn//Adtt9/nujR4fmvMcfh69+NZn4Kt3UqWFLhAcfDCuh1/TJJ/Dtb4cttR9+\nuOHak2SDakYi9fjlL+HYY8P2zY8/HvZ3WrkS/vjHsLHZPfcoEZXT7rvDU0/BD38Yhm0vWRImxP73\nv2FDvjZtwqaQSkSimlE9VDOqLC+8AP37h40HmzULS/7ccgvss0/SkTUN774LP/sZPPtsGOXYtWsY\nOXfqqUpElUQDGMpAyagyrV4dPlfajrdZsWZNqBlttlnSkUg5KBmVgZKRiEjjqM9IREQyTclIREQS\np2QkIiKJUzISEZHEKRmJiEjilIxERCRxmUpGZra1mQ0xsylm9h8za1XPcb3NbLKZTTWzfjWev9bM\n5pjZW7mP3vFFLyIi9clUMgKuAF5w987Ai8CVtQ8ws2bAAODrwJ7AaWbWpcYht7r7frmP5+IIupyG\nDh2adAgblIUYQXFGTXFGKytxFitryegE4C+5r/8CnFjHMQcB09x9lruvBR7NnZdXUYuPZOEPNAsx\nguKMmuKMVlbiLFbWklEbd58H4O4fAnXtCdkeeK/G4zm55/IuMLO3zeyP9TXziYhIvFKXjMzseTMb\nW+NjXO7z8XUc3tj1eu4GdnX3fYEPgVtLDlhEREqWqbXpzGwSUOXu88xse+Ald+9a65ieQH937517\nfAXg7n5jreM6Ak+7+971lJWdGyMikhLFrk23cdSBlNkg4AzgRuCHwFN1HDMS2C2XbD4ATgVOAzCz\n7XPNewDfAsbXV1CxN1RERBovazWjbYDHgB2BWcB33H2Jme0A3O/ux+WO6w3cTmiGfMDdb8g9/xCw\nL1ANvAuck++DEhGR5GQqGYmISGVK3QCGpJjZTWY2KTfS7gkz26qe4+qcUBtTjCeZ2XgzW29m+zVw\n3LtmNsbMRpvZG3HGmCu/0DgTu5e58gudRJ3I/Szk/pjZHWY2Lfd3u29csdWKocE4zewwM1tSY7L5\n1QnE+ICZzTOzsQ0ck4Z72WCcKbmXHczsRTObkBtgdlE9xzXufrq7PkLt8CigWe7rG4Df1nFMM2A6\n0BFoDrwNdIkxxs7AlwkTfvdr4LgZwNYJ3ssNxpn0vczFcCNwee7rfsANabmfhdwf4BjgmdzXPYDh\nCfyuC4nzMGBQ3LHViuFQQhP92Hq+n/i9LDDONNzL7YF9c1+3BKZE8bepmlGOu7/g7tW5h8OBDnUc\ntqEJteWOcYq7T2PDE3eNBGu9BcaZ6L3MKWQSNSRzPwu5PycADwG4+wiglZm1jTfMgn+PiQ4IcvdX\ngMUNHJKGe1lInJD8vfzQ3d/Ofb0CmMTn53JCEfdTyahuZwLP1vH8hibUpoUDz5vZSDM7K+lg6pGG\ne1nIJGpI5n4Wcn9qHzO3jmPKrdDf48G55ppnzGyPeEJrlDTcy0Kl5l6a2c6EmtyIWt9q9P3M2tDu\nkpjZ80DN7GyEF5qr3P3p3DFXAWvd/ZEEQiwoxgL0cvcPzGw7wovopNw7rrTFWXYNxFlXW3t9o3nK\nfj8r3ChgJ3f/xMyOAf4F7J5wTFmVmntpZi2Bx4GLczWkkjSpZOTuRzf0fTM7A+gDHFHPIXOBnWo8\n7pB7LjIbirHAa3yQ+zzfzAYSmlIiffGMIM6y30toOM5cR3Fb/2wS9Uf1XKPs97MOhdyfuYRpDg0d\nU24bjLPmC5W7P2tmd5vZNu6+KKYYC5GGe7lBabmXZrYxIRH91d3rmu/Z6PupZrqc3Nyky4Dj3X11\nPYd9OqHWzDYhTKgdFFeMtdTZbmxmm+fesWBmWwBfo4HJvTGor307DfcyP4ka6plEneD9LOT+DAJ+\nkIutJ7DE4583t8E4a/YVmNlBhCklSSQio/6/xzTcy7x640zRvfwTMNHdb6/n+42/n0mOykjTBzCN\nMJH2rdzH3bnndwD+XeO43oTRI9OAK2KO8URCO+xKwuoSz9aOEdiFMKJpNDAu7hgLjTPpe5krfxvg\nhVwMQ4Avpel+1nV/gHOAs2scM4Awmm0MDYywTDJO4HxCAh8NvAb0SCDGR4D3gdXAbOBHKb2XDcaZ\nknvZC1hf4//irdzfQEn3U5NeRUQkcWqmExGRxCkZiYhI4pSMREQkcUpGIiKSOCUjERFJnJKRiIgk\nTslIJCVyE0erG9p2Q6RSaZ6RSELM7CVgnLtflHtswHbAAv9sBXmRJqFJrU0nkmYe3hnWuT6eSKVT\nM51IAszsz4SN0s7PNc2tr91Ml9vVszq3k+qbZvaJmf3PzNrnvve2mS03s6fNbOta1/9RbifOlbld\nWC9J4ucUKZRqRiLJuJiw9P8k4ErCwpgtqXsbi/7ARcAy4O/APwjr/v0YqCasntw/d01yey71By4g\nrBvWDbjfzNa4+91l+nlESqJkJJIAd19mZmuAT9x9PoCZtaDu1ZqvdvfXcsfcC9xBWHhyTO65vwDf\nrnk8YTv1gbnHs8zsRsIim0pGkkpKRiLp5oTVwvPyy/CPr/VcGwAz25awj8wfcokrb2Pq3zxQJHFK\nRiLpt7bG1w7g7utrPZfv/81/Pgd4vfyhiURDyUgkOWuAjaK8oLt/ZGbvA7u5+8NRXluknJSMRJLz\nLnCQmXUEVlD36Nb6diZtyLXAHWa2FBgMNAf2A9q7+w1FxipSVhraLZKcWwi1o4mE+UXVfLFfp9H9\nPO7+AHAm8H3Cbpz/A84CZpQSrEg5aQUGERFJnGpGIiKSOCUjERFJnJKRiIgkTslIREQSp2QkIiKJ\nUzISEZHEKRmJiEjilIxERCRxSkYiIpK4/wfhn+ajiKTgrQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x3d21ac8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def kernel_tau(x,W=1):\n",
    "    'convenient function to compute kernel of eigenvalue problem'\n",
    "    x = np.asanyarray(x)\n",
    "    y = pi*where(x == 0,1.0e-20, x)\n",
    "    return sin(2*W*y)/y\n",
    "\n",
    "nstep=300                # quick and dirty integral quantization\n",
    "t = linspace(-1,1,nstep) # quantization of time\n",
    "tt = linspace(-2,2,nstep)# extend interval\n",
    "\n",
    "sigma = 5\n",
    "W = sigma/2./2./t.max()\n",
    "\n",
    "w,v=eig(kernel_tau(t-tt[:,None],W))\n",
    "ii = argsort(w.real) \n",
    "maxv=v[:, w.real.argmax()].real\n",
    "fig,ax = subplots()\n",
    "ax.plot(tt,maxv/sign(maxv[nstep/2])) # normalize to keep orientation upwards\n",
    "ax.set_xlabel('time',fontsize=14)\n",
    "ax.set_ylabel(r'$\\phi_{max}(t)$',fontsize=18)\n",
    "ax.set_title('$\\sigma=%d$'%(2*W*2*t.max()),fontsize=16)\n",
    "\n",
    "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$\\DeclareMathOperator{\\sinc}{sinc}$\n",
    "\n",
    "This looks suspicously like the $\\sinc$ function. In fact, in the limit as $\\sigma \\rightarrow \\infty$, the  eigenfunctions devolve into time-shifted versions of the $\\sinc$ function. These are the same functions used in the Whittaker interpolant. Now we have a way to justify the interpolant by appealing to large $\\sigma$ values."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Summary"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this section, at first blush, it may look like we accomplished nothing. We started out investigating why is it that we have some residual error in the reconstruction formula using the Whittaker approximation functions. Then, we recognized that we cannot have signals that are simultaneously time-limited and band-limited. This realization drove us to investigate \"approximately\" time-limited functions. Through carefully examining the resulting eigenvalue problem, we determined the time-bandwidth conditions under which the\n",
    "Whittaker interopolant is asymptotically valid. As you can imagine, there is much more to this story and many powerful theorems place bounds on the quality and dimensionality of this reconstruction, but for us, the qualifying concept of time-bandwidth product is enough for now.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## References"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "* This is in the [IPython Notebook format](http://ipython.org/) and was converted to HTML using [nbconvert](https://github.com/ipython/nbconvert).\n",
    "\n",
    "* See [Signal analysis](http://books.google.com/books?id=Re5SAAAAMAAJ) for more detailed mathematical development.\n",
    "\n",
    "* The IPython notebook corresponding to this post can be found [here](https://github.com/unpingco/Python-for-Signal-Processing/blob/master/Sampling_Theorem_Part_2.ipynb)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Miniconda64\\lib\\site-packages\\IPython\\parallel.py:13: ShimWarning: The `IPython.parallel` package has been deprecated. You should import from ipyparallel instead.\n",
      "  \"You should import from ipyparallel instead.\", ShimWarning)\n"
     ]
    }
   ],
   "source": [
    "%qtconsole"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
